package com.itany.corejava.code09_集合.map集合;

import java.util.HashMap;
import java.util.Map;

/**
 * @author 石小俊
 * @date 2023年05月08日 10:18
 */
public class Test01_HashMap {

    public static void main(String[] args) {
//        definedMap();
        mapMethod();
    }

    public static void definedMap() {
        // 定义一个使用默认初始容量16与默认加载因子0.75的HashMap
        HashMap<Integer, String> map = new HashMap<>();
        // 定义一个使用指定初始容量与默认加载因子的HashMap
        HashMap<String, String> map2 = new HashMap<>(10);
        // 定义一个使用指定初始容量与指定加载因子的HashMap
        Map<String, String> map3 = new HashMap<>(10, 0.5F);
        // 将另一个Map转换成指定HashMap
        HashMap<Integer, String> map4 = new HashMap<>(map);
    }

    public static void mapMethod() {
        HashMap<Integer, String> map = new HashMap<>();
        // put(key,value):添加操作
        // 参数由两部分组成:键key与值value
        map.put(1, "admin");
        map.put(2, "alice");
        // key具有唯一性,如果key重复了,则覆盖原有数据,相当于修改
        map.put(1, "jack");
        map.put(3, "admin");
        // 理论上key与value均可以为null
        // 但是实际开发中不建议出现
        map.put(null, null);
        System.out.println(map);

        // get(key):查询
        System.out.println("key为1的元素:" + map.get(1));
        System.out.println("key为2的元素:" + map.get(2));

        // remove(key)
        map.remove(2);
        System.out.println(map);

        // containsKey(key):判断集合中是否包含指定key的数据
        System.out.println("集合中是否包含key为1的数据:" + map.containsKey(1));
        System.out.println("集合中是否包含key为2的数据:" + map.containsKey(2));

        // containsValue(value):判断集合中是否包含指定value的数据
        System.out.println("集合中是否包含value为admin的数据:" + map.containsValue("admin"));
        System.out.println("集合中是否包含value为null的数据:" + map.containsValue(null));

        // isEmpty():判断集合是否为空
        System.out.println("集合是否为空:" + map.isEmpty());

        Map<String, String> map2 = new HashMap<>(10);
        System.out.println(map2.isEmpty());

        // size():返回集合中元素的数量
        System.out.println("集合中键值对的数量:" + map.size());

        // clear():清空
        map.clear();
        System.out.println("集合是否为空:" + map.isEmpty());
    }

}
